Skip to main content

acme.sh 用法

acme.sh 简介

acme.sh 是一个用于管理 Let's Encrypt SSL 证书的命令行工具,它能够帮助你自动获取、安装、更新和管理 SSL 证书。它相对轻量且易于使用,非常适合在服务器上部署和管理 SSL 证书。

安装依赖软件:

你可以通过以下命令在你的服务器上安装 socat

apt install socat

安装 acme.sh

你可以通过以下命令在你的服务器上安装 acme.sh

curl https://get.acme.sh | sh

切换证书服务器:

通过以下命令将证书服务器切换为letsencrypt

acme.sh --set-default-ca  --server  letsencrypt

获取证书(支持多种方式):

  • 通过 nginx 验证获取证书:

    这是一种监听 nginx 的 80 端口来验证域名所有权的方法。它需要确保 80 端口没有被其他进程占用。

    例如,你可以运行以下命令来获取证书:

    acme.sh --issue --nginx  -d yourdomain.com -d www.yourdomain.com
  • 使用 HTTP 文件验证获取证书:

    这是一种通过在你的服务器上提供特定文件来验证域名所有权的方法。你需要确保 http://yourdomain.com/.well-known/acme-challenge/ 可以被访问。

    例如,你可以运行以下命令来获取证书:

    acme.sh --issue --webroot /path/to/your/web/root -d yourdomain.com -d www.yourdomain.com
  • 使用 Standalone 模式验证获取证书:

    这是一种在本地监听 80 端口来验证域名所有权的方法。它需要确保 80 端口没有被其他进程占用。

    例如,你可以运行以下命令来获取证书:

    acme.sh --issue --standalone -d yourdomain.com -d www.yourdomain.com

证书的其他操作:

  • 安装证书:

    获取证书后,你可以使用以下命令来安装证书到指定的服务(如 Apache、Nginx 等):

    acme.sh --install-cert -d yourdomain.com \
    --key-file /path/to/your/private/key \
    --fullchain-file /path/to/your/fullchain/certificate \
    --reloadcmd "service nginx reload" # 根据你的服务器进行调整
  • 自动更新证书:

    你可以设置一个定时任务(cron job)来自动定期检查证书的到期情况并更新:

    acme.sh --cron
  • 列出所有证书信息:

    查看已申请的证书信息:

    acme.sh --list

这只是 acme.sh 的一些基本用法示例,它还具有许多其他功能和选项,可以根据你的需要进行更多配置和操作。请确保在使用前阅读官方文档以获取更详细的信息。